Giải mã Mật mã Caesar

Độ

dịch

Bản thô ứng viên
0>exxegoexsrgi
1dwwdfndwrqfh
2cvvcemcvqpeg
3buubdlbupodf
4attackatonce
5zsszbjzsnmbd
6yrryaiyrmlac
...
23haahjrhavujl
24gzzgiqgzutik
25fyyfhpfytshj

Mật mã Caesar rất dễ bị phá, ngay cả trong trường hợp người giải mã chỉ có trong tay các bản mật mã. Có hai tình huống được xem xét:

  1. người giải mã biết (hoặc đoán) rằng một số dạng mật mã thay thế đơn giản đã được sử dụng, nhưng không biết cụ thể đó là mật mã Caesar;
  2. người giải mã biết chính xác mật mã Caesar được sử dụng, nhưng không biết giá trị khóa mã.

Trong trường hợp đầu tiên, mật mã có thể phá giải bằng các phương pháp tương tự như đối với các dạng mật mã thay thế đơn giản nói chung, chẳng hạn như phân tích tần suất hay phân tích các từ mẫu.[16] Khi phân tích, có khả năng người giải mã sẽ nhanh chóng nhận thấy tính quy tắc trong giải pháp thay thế và suy ra rằng kỹ thuật mã hóa được dùng là mật mã Caesar.

Biểu đồ phân bố các chữ cái trong một mẫu văn bản tiếng Anh điển hình có hình dạng đặc biệt và dễ đoán. Phép dịch chuyển Caesar "xoay" biểu đồ này và có thể xác định bằng cách xem xét biểu đồ.

Trong trường hợp thứ hai, công việc giải mã thậm chí còn nhẹ nhàng hơn. Vì số khóa mã có khả năng được sử dụng là giới hạn (25 khóa mã đối với bảng chữ cái tiếng Anh), mỗi khóa mã có thể được kiểm tra lần lượt bằng kiểu tấn công vét cạn. Một cách để thực hiện là thử giải một đoạn trích nhỏ của bản mật mã với tất cả các khóa mã có thể, và viết lên trên một bảng,[17] đôi khi gọi là "giải mã một phần bản thô".[18] Ví dụ với đoạn mật mã "EXXEGOEXSRGI"; bản thô có thể nhìn ra ngay lập tức với phép dịch bốn vị trí.[19] Còn có một cách khác, đó là với mỗi chữ cái của bản mật mã, toàn bộ bảng chữ cái sẽ được sắp theo thứ tự ngược lại, bắt đầu từ chữ cái đó. Tăng tốc cho phương pháp bằng việc chuẩn bị trước một tập hợp các dải chữ cái được viết theo thứ tự ngược lại. Sau đó, căn chỉnh các dải để tạo thành các bản mật mã được viết trên từng dòng, trong đó sẽ có một dòng chính là bản thô.

Chúng ta cũng có thể tấn công vét cạn bằng cách so phân phối tần suất của từng chữ cái. Cụ thể, với việc vẽ biểu đồ tần suất của mỗi chữ cái trong bản mật mã, và biết trước phân phối dự kiến của các chữ cái trong ngôn ngữ gốc của bản thô, người giải mã có thể dễ dàng tìm ra độ dịch vị trí bằng cách xem xét sự dời chỗ của các đặc điểm cụ thể trên biểu đồ. Đây gọi là phân tích tần suất. Ví dụ, trong ngôn ngữ tiếng Anh, tần suất các chữ cái E, T, (thường là phổ biến nhất) và Q, Z (thường là ít thường xuyên nhất) là dấu hiệu đặc trưng.[20] Máy tính có thể làm điều này bằng cách so gần khớp phân phối tần suất thực tế với dự kiến, ví dụ như sử dụng phương pháp kiểm định chi bình phương.[21]

Đối với bản thô viết bằng ngôn ngữ tự nhiên, thường sẽ chỉ có một cách giải mã hợp lý, mặc dù đối với những bản thô quá ngắn, có thể có nhiều đáp án khác nhau. Ví dụ, bản mật mã MPQY có thể giải mã thành "aden" hoặc "know" (giả sử bản thô là tiếng Anh); tương tự, "ALIIP" thành "dolls" hoặc "wheel"; và "AFCCP" thành "jolly" hoặc "cheer" (xem thêm khoảng cách unicity).

Với mật mã Caesar, việc mã hóa một bản thô nhiều lần chồng chéo không gia tăng thêm khả năng bảo mật. Điều này do khi thực hiện hai mã hóa, ví dụ, mã hóa khóa A rồi tiếp tục mã hóa khóa B, tương đương với việc thực hiện một mã hóa khóa (A + B) duy nhất. Theo thuật ngữ toán học, tập hợp các phép tính mã hóa trong mỗi khóa có thể tạo thành một nhóm dưới hàm hợp.[22]